/*
 * module-generator - generator代码生成模块
 * Copyright © 2020-2025 Linlan (open@linlan.net)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package net.linlan.tools.generator.constant;

/**
 * 代码生成通用常量
 * 
 * @author Linlan
 */
public class GenConstants {
    /** 单表（增删改查） */
    public static final String   TPL_CRUD             = "crud";

    /** 树表（增删改查） */
    public static final String   TPL_TREE             = "tree";

    /** 主子表（增删改查） */
    public static final String   TPL_SUB              = "sub";

    /** 前端JSON（增删改查） */
    public static final String   TPL_JSON             = "json";

    /** 复杂VO（增删改查） */
    public static final String   TPL_VO               = "vo";

    /** 树编码字段 */
    public static final String   TREE_CODE            = "treeCode";

    /** 树父编码字段 */
    public static final String   TREE_PARENT_CODE     = "treeParentCode";

    /** 树名称字段 */
    public static final String   TREE_NAME            = "treeName";

    /** 上级菜单ID字段 */
    public static final String   PARENT_MENU_ID       = "parentMenuId";

    /** 上级菜单名称字段 */
    public static final String   PARENT_MENU_NAME     = "parentMenuName";

    /** 数据库字符串类型 */
    public static final String[] COLUMNTYPE_STR       = { "char", "varchar", "nvarchar",
                                                          "varchar2" };

    /** 数据库文本类型 */
    public static final String[] COLUMNTYPE_TEXT      = { "tinytext", "text", "mediumtext",
                                                          "longtext" };

    /** 数据库时间类型 */
    public static final String[] COLUMNTYPE_TIME      = { "datetime", "time", "date", "timestamp" };

    /** 数据库数字类型 */
    public static final String[] COLUMNTYPE_NUMBER    = { "tinyint", "smallint", "mediumint", "int",
                                                          "number", "integer", "bit", "bigint",
                                                          "float", "double", "decimal" };

    /** 页面不需要编辑字段 */
    public static final String[] COLUMNNAME_NOT_EDIT  = { "ID", "CREATOR_ID", "CREATE_TIME",
                                                          "DEL_FLAG" };

    /** 页面不需要显示的列表字段 */
    public static final String[] COLUMNNAME_NOT_LIST  = { "ID", "CREATOR_ID", "CREATE_TIME",
                                                          "DEL_FLAG", "LAST_TIME" };

    /** 页面不需要查询字段 */
    public static final String[] COLUMNNAME_NOT_QUERY = { "ID", "CREATOR_ID", "CREATE_TIME",
                                                          "DEL_FLAG", "LAST_TIME", "DESCRIPTION" };

    /** Entity基类字段 */
    public static final String[] BASE_ENTITY          = { "creatorId", "createTime", "lastTime" };

    /** Tree基类字段 */
    public static final String[] TREE_ENTITY          = { "parentName", "parentId", "priority",
                                                          "searchCode", "children" };

    /** 文本框 */
    public static final String   HTML_INPUT           = "input";

    /** 文本域 */
    public static final String   HTML_TEXTAREA        = "textarea";

    /** 下拉框 */
    public static final String   HTML_SELECT          = "select";

    /** 单选框 */
    public static final String   HTML_RADIO           = "radio";

    /** 复选框 */
    public static final String   HTML_CHECKBOX        = "checkbox";

    /** 日期控件 */
    public static final String   HTML_DATETIME        = "datetime";

    /** 图片上传控件 */
    public static final String   HTML_IMAGE_UPLOAD    = "imageUpload";

    /** 文件上传控件 */
    public static final String   HTML_FILE_UPLOAD     = "fileUpload";

    /** 富文本控件 */
    public static final String   HTML_EDITOR          = "editor";

    /** 富文本控件 */
    public static final String   HTML_SUMMERNOTE      = "summernote";

    /** 字符串类型 */
    public static final String   TYPE_STRING          = "String";

    /** 整型 */
    public static final String   TYPE_BOOLEAN         = "Boolean";

    /** 整型 */
    public static final String   TYPE_INTEGER         = "Integer";

    /** 长整型 */
    public static final String   TYPE_LONG            = "Long";

    /** 浮点型 */
    public static final String   TYPE_DOUBLE          = "Double";

    /** 高精度计算类型 */
    public static final String   TYPE_BIGDECIMAL      = "BigDecimal";

    /** 时间类型 */
    public static final String   TYPE_DATE            = "Date";

    /** 模糊查询 */
    public static final String   QUERY_LIKE           = "LIKE";

    /** 相等查询 */
    public static final String   QUERY_EQ             = "EQ";

    /** 需要 */
    public static final String   REQUIRE              = "1";
}
